1. Field of the Invention
The present invention relates to a technique in a computer based data processing system for creating programs for use in a client/server environment which may be updated or modified remotely. More particularly, the present invention relates to a technique by which programs are created which may be updated from a remote program via a network, and the technique for updating the programs.
2. Description of the Related Art
In a client/server environment, an application is often split into a client component (resident at a user's workstation or the like) and a server component (resident at a server) which the clients access to carry out certain functionality of the application. One constant fact about applications is that they are always being changed. This can be more of a problem in the client-server environment because of the relationship of the one server to the many clients, particularly when the clients need to be updated to take advantage of improvements or functionality change in the server portion of the application.
In order to solve this problem today, a number of solutions are used. The owner of each client workstation can manually update the application by loading the latest version of the client application on the client workstation. But this solution is labor intensive, error prone, and does not guarantee that all of the clients will actually be updated.
Application management tools have also been developed that have the capability to distribute new versions of client applications to clients via a network. In order for this technique to work, the client workstation must have the application management tool client installed thereon, so that the application management tool can force the new version onto the client workstation. An example of such an application tool is TME 10 from Tivoli Corporation. However, this technique requires a large amount of overhead, resources and expense. The client portion of the application management tool must be loaded on each client workstation and configured manually upon its initial install. The client application management tool computational resources are the same as larger client-server applications. The software itself and maintenance and support thereof can also be costly.
Over the last few years, object oriented programming has gained in popularity. Developing software applications using an object oriented language in an object oriented development environment can be easier than writing traditional procedural software applications, since object oriented development environments rely extensively on the reuse of code from class libraries, or blocks of code, which are prewritten to form particular functions. Also, object oriented languages, such as Java, have been optimized for use over a network, such as the Internet. (Java is a trademark of Sun Microsystems Inc.)
Accordingly, a need exists for a simple solution for client-server applications that is inexpensive and permits easy updating of the client portion of the application.
Sun Microsystems inc., the developer of the Java programming language, has developed a number of tools to aid Java developers create Java applications. JJTree and JavaCC (the Java compiler compiler) were developed by SUN to test the Java programming language. This was done by having JJTree and JavaCC parse and create test cases that would exercise the Java programming environment. For example, NASA has employed JJTree and JavaCC (the Java compiler compiler) to create a programming language which it employs for programming telemetry into its vehicles. However, to date, these tools and their capabilities have not been applied to the problem of updating client-server appellations.